Navigational devices are well known. The capabilities of navigational devices and methods depend on system resources, such as processor speed and the amount and speed of memory. The processes implemented by a navigation device are a function of overall system cost because an increase in system capability also increases system cost. The known art includes a spectrum of products in which the degree of navigational accuracy is dictated primarily by the cost of the system. The lower cost systems currently offer a lower degree of accuracy that often is inadequate for most users. Other devices also depend on system resources, such as processor speed and the amount and speed of memory.
The known art compresses data, including text, in an attempt to improve the efficiency of the system resources. That is, compression improves the performance of a system that has a limited processor speed and a limited amount and speed of memory. Compressing data involves encoding data, and this encoded data is decoded for an end use in a device. For example, a navigational device end use includes, but is not limited to, displaying text or other cartographic data. One conventional method for encoding and decoding data, particularly text data, involves Huffman codes or canonical Huffman codes. Huffman codes and canonical Huffman codes will be described in more detail below.
Decoding the encoded data often involves a time-space tradeoff. Increasing the allocated space for a decoding structure typically increases the speed of the decoding operation; whereas decreasing the allocated space for a decoding structure often decreases the speed of the decoding operation. In certain applications, it is desired to balance the competing needs of decoding speed and memory space so that an adequate decoding speed is achieved using an acceptable amount of memory. For example, in certain applications, it may be desired to reduce the memory space taken up by the decoding structure at the expense of an acceptable slowing of the decoding speed. In other applications, it may be desired to increase the speed of the decoding operation at the expense of an acceptable amount of additional memory space taken up by the decoding structure.
Therefore, there exists a need for a data compression system and method which provides design flexibility by allowing design choices to be made to increase decoding speed by adding more space to the decoding structure or to decrease the decoding structure space and decrease the decoding speed.